home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
QRZ! Ham Radio 8
/
QRZ Ham Radio Callsign Database - Volume 8.iso
/
mac
/
files
/
ant_nec
/
nec81tar.z
/
nec81tar
/
mainsa.f
< prev
next >
Wrap
Text File
|
1991-05-13
|
40KB
|
1,357 lines
C $TITLE: 'MAIN'
C $NOFLOATCALLS
C PROGRAM NEC(INPUT,TAPE5=INPUT,OUTPUT,TAPE11,TAPE12,TAPE13,TAPE14,
C 1TAPE15,TAPE16,TAPE20,TAPE21)
C
C NUMERICAL ELECTROMAGNETICS CODE 'NEC-81', v2.2, 13 DEC 88
C PC VERSION DEVELOPED BY DAVID J. PINION, P.E.
C
C**
C*** ==================================================================
C***
C*** ADDITIONS TO NEC-81 BY R W ADLER, 03 APR 89 FOR USE IN
C*** NEEDS 2.0.
C***
C*** LOG OF ADDITIONS
C*** ++++++++++++++++
C***
C*** 1. THE PT CARD ADDITIONS FOR RCV CURRENT OUTPUTS/IPTFLG 8 & 9
C*** (MAIN)
C***
C*** 2. THE GP GARD WHICH TURNS OFF GEOMETRY PRINT
C*** (DATAGN)
C***
C*** 3. THE GM CARD OPTION WHICH ALLOWS SELECTED-TAG MOVES
C*** (DATAGN, MOVE)
C***
C*** 4. THE PL CARD: A. IPLP4 = 4 FOR V, H, & TOTAL GAINS
C*** (RDPAT)
C*** B. IPLP2 = 3 FOR GROUND WAVE FIELD PLOTS
C*** (RDPAT)
C*** C. THE GE1,1 OPTION FOR GTD OUTPUTS (NEC-BSC)
C*** (MAIN, DATAGN)
C*** D. THE GE1,2 OPTION FOR CURRPLOT OUTPUTS
C*** (MAIN, DATAGN)
C*** E. IPLP1 = 4 FOR FREQ, Z, Z', & VSWR
C*** (MAIN)
C*** F. IPLP1 = 5 FOR FREQ, Y, Y', & VSWR
C*** (MAIN)
C***
C***
C*** 5. ADD VSWR CALCULATIONS TO THE IMPEDANCE TABLE
C*** PRODUCED BY THE EX CARD OPTIONS
C*** (MAIN)
C***
C*** 6. ADD AN ADMITTANCE TABLE TO THE LISTING WHEN REQUESTING
C*** THE IMPEDANCE TABLE IN THE EX CARD OPTIONS
C*** (MAIN)
C***
C*** =================================================================
C***
C*** LISAA PUUKOTUSTA P.KOTILAISEN TOIMESTA 28.2.1990
C***
C*** TAMA VERSIO TOIMII AINAKIN SUN-4 SPARCSTATIONILLA
C***
C*** EDELLEEN PUUKOTUSTA 1.4.1991 ...
C***
C*** DIMENSIOITA MUUTETTU, MAX. SEGMENTTIMAARA NYT 3000
C***
C*** =================================================================
C***
C PARAMETER(IRESRV= 8100)
PARAMETER(IRESRV= 1000000)
C PARAMETER(LD = 300)
PARAMETER(LD = 3000)
PARAMETER(LD2=2*LD)
PARAMETER(LD3=3*LD)
PARAMETER(LD4=4*LD)
C**
CHARACTER AIN*2,ATST*2,PNET*8,HPOL*6
C***
C*** READ FROM \NEEDS\DATA\ RWA 1 LINE 10 JUN 89
C***
CHARACTER*31 INPUTFILE
C***
C*** WRITE TO \NEEDS\NEC\ RWA 1 LINE 10 JUN 89
C***
CHARACTER*31 OUTPUTFILE
C**
INTEGER*4 ICON1,ICON2,ITAG,ICONX,N1,N2,N,NP,M1,M2,M,MP,IPSYM
INTEGER*4 NPEQ,NEQ,NEQ2,IB11,IC11,ID11,IX11,IND1,IND2
INTEGER*4 IMAT,NPBLK,NLAST,NLSYM,NBBX,NPBX,NLBX,NBBL,NPBL,NLBL
REAL*8 GAIN,AX,BX,CX,AIR,AII,BIR,BII,CIR,CII
REAL*8 TA,R1,R2,ZMH,ZPH,DB20,CANG,CMAG,PH,FR2
C***
C*** ADMITTANCE STUFF RWA 28 MAR 89 ADD 1 LINE
C***
REAL*8 YPNORM,ZPNORM
CLARGE: CM,CMN,CUR,RHS,RHNT
COMPLEX CM,CMN,CUR,RHS,RHNT,SR1,SR2,SR3,SPSCF
COMPLEX*16 SCRATC
COMPLEX*16 U,U2,XX1,XX2,CURI,ETH,EPH,EX,EY,EZ
COMPLEX*16 VQD,VSANT,VQDS,Y11A,Y12A
COMPLEX*16 VSRC,RHNX,SSX,ZARRAY,ZPED
COMPLEX*16 EXK,EYK,EZK,EXS,EYS,EZS,EXC,EYC,EZC,ZRATI,ZRATI2,
1 T1,FRATI,EPSC
REAL*4 DXA,DYA,XSA,YSA
COMPLEX*8 AR1,AR2,AR3,EPSCF
COMPLEX FJ
COMMON/DATAD/N1,N2,N,NP,M1,M2,M,MP,IPSYM,WLAM
COMMON/DATAJ/S,B,XJ,YJ,ZJ,CABJ,SABJ,SALPJ,EXK,EYK,EZK,EXS,EYS,
1 EZS,EXC,EYC,EZC,RKH,IND1,IND2,IPGND,IEXK
COMMON/MATPAR/ICASE,NBLOKS,NPBLK,NLAST,NBLSYM,NPSYM,NLSYM,IMAT,
1ICASX,NBBX,NPBX,NLBX,NBBL,NPBL,NLBL
COMMON/SAVE/KCOM,COM(19,5),EPSR,SIG,SCRWLT,SCRWRT,FMHZ
COMMON/GND/ZRATI,ZRATI2,FRATI,CL,CH,SCRWL,SCRWR,NRADL,KSYMP,
1 IFAR,IPERF,T1,T2
COMMON/ZLOAD/ NLOAD,NLODF
COMMON/YPARM/NCOUP,ICOUP,NCTAG(5),NCSEG(5),Y11A(5),Y12A(20)
COMMON/SEGJ/AX(30),BX(30),CX(30),JCO(30),JSNO,ISCON(50),NSCON,
1IPCON(10),NPCON
COMMON/VSORC/VQD(30),VSANT(30),VQDS(30),IVQD(30),ISANT(30),
1IQDS(30),NVQD,NSANT,NQDS
COMMON/NETCX/ZPED,PIN,PNLS,NEQ,NPEQ,NEQ2,NONET,NTSOL,NPRINT,
1MASYM,ISEG1(30),ISEG2(30),X11R(30),X11I(30),X12R(30),X12I(30),
1X22R(30),X22I(30),NTYP(30)
COMMON/NETWKC/CMN(30,30),RHNT(30),IPNT(30),NTEQA(30),NTSCA(30),
1 VSRC(30),RHNX(30),NAMPRT
COMMON/FPAT/NTH,NPH,IPD,IAVP,INOR,IAX,THETS,PHIS,DTH,DPH,
1RFLD,GNOR,CLT,CHT,EPSR2,SIG2,IXTYP,XPR6,PINR,PNLR,PLOSS,
1NEAR,NFEH,NRX,NRY,NRZ,XNR,YNR,ZNR,DXNR,DYNR,DZNR
COMMON/GGRID/AR1(11,10,4),AR2(17,5,4),AR3(9,8,4),EPSCF,DXA(3),
1DYA(3),XSA(3),YSA(3),NXA(3),NYA(3)
COMMON/GWAV/U,U2,XX1,XX2,R1,R2,ZMH,ZPH
COMMON/PLOT/ IPLP1,IPLP2,IPLP3,IPLP4
COMMON/SMAT/SSX(16,16)
C
DIMENSION ATST(22),PNET(3),HPOL(3)
DIMENSION IP(LD2),IX(LD2),ICON1(LD),ICON2(LD),ITAG(LD),ICONX(LD)
DIMENSION LDTYP(30),LDTAG(30),LDTAGF(30),LDTAGT(30),ZLR(30),
1ZLI(30),ZLC(30)
DIMENSION FNORM(200)
DIMENSION GAIN(LD4),X(LD),Y(LD),Z(LD),BI(LD),SALP(LD)
DIMENSION AIR(LD),AII(LD),BIR(LD),BII(LD),CIR(LD),CII(LD)
DIMENSION CM(IRESRV),CUR(LD3),RHS(LD3),SCRATC(LD2),ZARRAY(LD)
DIMENSION XTEMP(LD),YTEMP(LD),ZTEMP(LD),SITEMP(LD),BITEMP(LD)
DIMENSION T1X(LD),T1Y(LD),T1Z(LD),T2X(LD),T2Y(LD),T2Z(LD)
EQUIVALENCE (SCRATC,GAIN)
C**
EQUIVALENCE (T2X,ICON1),(T2Y,ICON2),(T2Z,ICONX)
DATA ATST/2HCE,2HFR,2HLD,2HGN,2HEX,2HNT,2HXQ,2HNE,2HGD,
1 2HRP,2HCM,2HNX,2HEN,2HTL,2HPT,2HKH,2HNH,2HPQ,2HEK,2HWG,
1 2HCP,2HPL/
DATA HPOL/6HLINEAR,6HRIGHT ,6HLEFT /
DATA PNET/8H ,8HSTRAIGHT,8HCROSSED /
DATA TA/1.745329252D-02/,CVEL/299.8/
C DATA LOADMX,NSMAX,NETMX/30,30,30/,NORMF/200/
DATA LOADMX,NSMAX,NETMX/100,50,100/,NORMF/200/
C DATA IR/3/,IW/4/,IGFL/20/
DATA IR/23/,IW/24/,IGFL/20/
WRITE(*,9000)
WRITE(*,9001)
9000 FORMAT(/,26X,'N.E.C. PROGRAM NEC-81',/,
1 15X,'v2.2, COPYRIGHT 1989, DAVID J. PINION, P.E.',/)
9001 FORMAT(/,26X,'Modified by OH3MCK 1991 for SUN-4',/)
CALL SECOND(EXTIM)
FJ=(0.,1.)
NXA(1)=0
C***
C*** STAND-ALONE READ-WRITE
C***
WRITE(*,'(A,I2,A)') ' OPEN UNIT ',IR,' FOR NEC INPUT FILE'
READ(*,'(A)') INPUTFILE
WRITE(*,'(A,I2,A)') ' OPEN UNIT ',IW,' FOR NEC OUTPUT FILE'
READ(*,'(A)') OUTPUTFILE
1 KCOM=0
C***
C*** READ FROM \NEEDS\DATA\ RWA 4 LINES 10 JUN 89
C***
C** WRITE(*,'(A,I2,A)') ' OPEN UNIT ',IR,' FOR NEC INPUT FILE - \NEED
C** |S\DATA\input filename.NEC'
C READ(*,'(A)') INPUTFILE
C** OPEN (UNIT=3,FILE='\NEEDS\DATA\'//INPUTFILE//'.NEC',STATUS='OLD')
OPEN (UNIT=23,FILE=INPUTFILE, STATUS='OLD')
C** WRITE(*,'(A,I2,A)') ' OPEN UNIT ',IW,' FOR NEC OUTPUT FILE - \NEED
C** |S\NEC\output filename.OUT'
C***
C*** WRITE TO \NEEDS\NEC\ RWA 2 LINES 10 JUN 89
C***
C READ(*,'(A)') OUTPUTFILE
C** OPEN (UNIT=4,FILE='\NEEDS\NEC\'//OUTPUTFILE//'.OUT')
OPEN (UNIT=24,FILE=OUTPUTFILE, STATUS='NEW')
C***
IFRTMW=0
IFRTMP=0
C***
2 KCOM=KCOM+1
IF (KCOM.GT.5) KCOM=5
1000 CONTINUE
READ(IR,125)AIN,(COM(I,KCOM),I=1,19)
IF(KCOM.GT.1)GO TO 3
WRITE(IW,126)
WRITE(IW,127)
WRITE(IW,128)
3 WRITE(IW,129) (COM(I,KCOM),I=1,19)
IF (AIN.EQ.ATST(11)) GO TO 2
IF (AIN.EQ.ATST(1)) GO TO 4
WRITE(IW,130)
STOP
4 CONTINUE
DO 5 I=1,LD
5 ZARRAY(I)=DCMPLX(0.,0.)
MPCNT=0
IMAT=0
C
C SET UP GEOMETRY DATA IN SUBROUTINE DATAGN
C
CD WRITE(*,'(A)') 'MAIN: CALL DATAGN'
CALL DATAGN(CM,ZARRAY,X,Y,Z,BI,SALP,T1X,T1Y,T1Z,T2X,T2Y,T2Z,
1 ICON1,ICON2,ITAG,ICONX,IP,LD,LD2,IRESRV,IR,IW,IGFL)
CD WRITE(*,'(A)') 'MAIN: RTRN DATAGN'
IF(IMAT.EQ.0)GO TO 326
C
C CORE ALLOCATION FOR ARRAYS B, C, AND D FOR N.G.F. SOLUTION
C
NEQ=2*(M-M1+NPCOM)
NEQ2=N-N1+NSCON+NEQ
NEQ=N1+2*M1
CD WRITE(*,'(A)') 'MAIN: CALL FBNGF'
CALL FBNGF(NEQ,NEQ2,IRESRV,IB11,IC11,ID11,IX11,IW)
CD WRITE(*,'(A)') 'MAIN: RTRN FBNGF'
GO TO 6
326 NEQ=N+2*M
NEQ2=0
IB11=1
IC11=1
ID11=1
IX11=1
ICASX=0
6 NPEQ=NP+2*MP
WRITE(IW,135)
C
C DEFAULT VALUES FOR INPUT PARAMETERS AND FLAGS
C
IPLP1=0
IPLP2=0
IPLP3=0
IPLP4=0
C***
IGO=1
FMHZS=CVEL
NFRQ=1
RKH=1.
IEXK=0
IXTYP=0
NLOAD=0
NONET=0
NEAR=-1
IPTFLG=-2
IPTFLQ=-1
IFAR=-1
ZRATI=DCMPLX(1.,0.)
IPED=0
IRNGF=0
NCOUP=0
ICOUP=0
IF(ICASX.GT.0)GO TO 14
FMHZ=CVEL
NLODF=0
KSYMP=1
NRADL=0
IPERF=0
C
C MAIN INPUT SECTION - STANDARD READ STATEMENT - JUMPS TO APPRO-
C PRIATE SECTION FOR SPECIFIC PARAMETER SET UP
C
14 READ(IR,136)AIN,ITMP1,ITMP2,ITMP3,ITMP4,TMP1,TMP2,TMP3,TMP4,
1 TMP5,TMP6
MPCNT=MPCNT+1
WRITE(IW,137) MPCNT,AIN,ITMP1,ITMP2,ITMP3,ITMP4,TMP1,TMP2,TMP3,
1TMP4,TMP5,TMP6
IF (AIN.EQ.ATST(2)) GO TO 16
IF (AIN.EQ.ATST(3)) GO TO 17
IF (AIN.EQ.ATST(4)) GO TO 21
IF (AIN.EQ.ATST(5)) GO TO 24
IF (AIN.EQ.ATST(6)) GO TO 28
IF (AIN.EQ.ATST(14)) GO TO 28
IF (AIN.EQ.ATST(15)) GO TO 31
IF (AIN.EQ.ATST(18)) GO TO 319
IF (AIN.EQ.ATST(7)) GO TO 37
IF (AIN.EQ.ATST(8)) GO TO 32
IF (AIN.EQ.ATST(17)) GO TO 208
IF (AIN.EQ.ATST(9)) GO TO 34
IF (AIN.EQ.ATST(10)) GO TO 36
IF (AIN.EQ.ATST(16)) GO TO 305
IF (AIN.EQ.ATST(19)) GO TO 320
IF (AIN.EQ.ATST(12)) GO TO 1
IF (AIN.EQ.ATST(20)) GO TO 322
IF (AIN.EQ.ATST(21)) GO TO 304
C***
IF (AIN.EQ.ATST(22)) GO TO 330
C***
IF (AIN.NE.ATST(13)) GO TO 15
CD WRITE(*,'(A)') 'MAIN: CALL SECOND'
CALL SECOND(TMP1)
CD WRITE(*,'(A)') 'MAIN: RTRN SECOND'
TMP1=TMP1-EXTIM
IF(TMP1.LT.0.) TMP1=TMP1+86400.
WRITE(IW,201) TMP1/60.
C**
C** INPUT AND OUTPUT COMPLETE WHEN PROGRAM ENDS, FOLLOWING IS
C** NORMAL RUN ENDING POINT:
C**
CLOSE(IR)
CLOSE(IW)
C**
STOP
15 WRITE(IW,138)
STOP
C
C FREQUENCY PARAMETERS
C
16 IFRQ=ITMP1
IF(ICASX.EQ.0)GO TO 8
WRITE(IW,303) AIN
STOP
8 NFRQ=ITMP2
IF (NFRQ.EQ.0) NFRQ=1
FMHZ=TMP1
DELFRQ=TMP2
IF(IPED.EQ.1)ZPNORM=0.D0
C***
C*** ADMITTANCE STUFF - RWA 28 MAR 89 - 1 LINE
C***
IF(IPED.EQ.1)YPNORM = 1.D69
IGO=1
IFLOW=1
GO TO 14
C
C MATRIX INTEGRATION LIMIT
C
305 RKH=TMP1
IF(IGO.GT.2)IGO=2
IFLOW=1
GO TO 14
C
C EXTENDED THIN WIRE KERNEL OPTION
C
320 IEXK=1
IF(ITMP1.EQ.-1)IEXK=0
IF(IGO.GT.2)IGO=2
IFLOW=1
GO TO 14
C
C MAXIMUM COUPLING BETWEEN ANTENNAS
C
304 IF(IFLOW.NE.2)NCOUP=0
ICOUP=0
IFLOW=2
IF(ITMP2.EQ.0)GO TO 14
NCOUP=NCOUP+1
IF(NCOUP.GT.5)GO TO 312
NCTAG(NCOUP)=ITMP1
NCSEG(NCOUP)=ITMP2
IF(ITMP4.EQ.0)GO TO 14
NCOUP=NCOUP+1
IF(NCOUP.GT.5)GO TO 312
NCTAG(NCOUP)=ITMP3
NCSEG(NCOUP)=ITMP4
GO TO 14
312 WRITE(IW,313)
STOP
C
C LOADING PARAMETERS
C
17 IF (IFLOW.EQ.3) GO TO 18
NLOAD=0
IFLOW=3
IF (IGO.GT.2) IGO=2
IF (ITMP1.EQ.(-1)) GO TO 14
18 NLOAD=NLOAD+1
IF (NLOAD.LE.LOADMX) GO TO 19
WRITE(IW,139)
STOP
19 LDTYP(NLOAD)=ITMP1
LDTAG(NLOAD)=ITMP2
IF (ITMP4.EQ.0) ITMP4=ITMP3
LDTAGF(NLOAD)=ITMP3
LDTAGT(NLOAD)=ITMP4
IF (ITMP4.GE.ITMP3) GO TO 20
WRITE(IW,140) NLOAD,ITMP3,ITMP4
STOP
20 ZLR(NLOAD)=TMP1
ZLI(NLOAD)=TMP2
ZLC(NLOAD)=TMP3
GO TO 14
C
C GROUND PARAMETERS UNDER THE ANTENNA
C
21 IFLOW=4
IF(ICASX.EQ.0)GO TO 10
WRITE(IW,303) AIN
STOP
10 IF (IGO.GT.2) IGO=2
IF (ITMP1.NE.(-1)) GO TO 22
KSYMP=1
NRADL=0
IPERF=0
GO TO 14
22 IPERF=ITMP1
NRADL=ITMP2
KSYMP=2
EPSR=TMP1
SIG=TMP2
IF (NRADL.EQ.0) GO TO 23
IF(IPERF.NE.2)GO TO 314
WRITE(IW,390)
STOP
314 SCRWLT=TMP3
SCRWRT=TMP4
GO TO 14
23 EPSR2=TMP3
SIG2=TMP4
CLT=TMP5
CHT=TMP6
GO TO 14
C
C EXCITATION PARAMETERS
C
24 IF (IFLOW.EQ.5) GO TO 25
NSANT=0
NVQD=0
IPED=0
IFLOW=5
IF (IGO.GT.3) IGO=3
25 CONTINUE
IF (ITMP1.GT.0.AND.ITMP1.LT.5) GO TO 27
IXTYP=ITMP1
NTSOL=0
IF(IXTYP.EQ.0) GOTO 205
IF(IXTYP.EQ.5) GOTO 200
IF(IXTYP.GT.5) WRITE(*,*) ' ERROR: ILLEGAL EXCITATION TYPE'
C**
C** IXTYP=6 FOR FIELD EXCITATION, USED IN NEC-AM
C** IXTYP=7 FOR POWER INPUT, ALSO USED IN NEC-AM
C**
GOTO 14
C**
C** FOLLOWING FOR IXTYP=5 CURRENT-SLOPE-DISCONTINUITY VOLTAGE SOURCE
C**
200 CONTINUE
NVQD=NVQD+1
IF((NSANT+NVQD).GT.NSMAX) GOTO 206
IVQD(NVQD)=ISEGNO(ITMP2,ITMP3,LD,ITAG)
VQD(NVQD)=DCMPLX(TMP1,TMP2)
C IF(CABS(VQD(NVQD)).LT.1.D-20) VQD(NVQD)=DCMPLX(1.,0.)
IF(ZABS(VQD(NVQD)).LT.1.D-20) VQD(NVQD)=DCMPLX(1.,0.)
GO TO 207
205 NSANT=NSANT+1
IF((NSANT+NVQD).LE.NSMAX) GOTO 26
206 WRITE(IW,141)
STOP
26 ISANT(NSANT)=ISEGNO(ITMP2,ITMP3,LD,ITAG)
VSANT(NSANT)=DCMPLX(TMP1,TMP2)
C IF(CABS(VSANT(NSANT)).LT.1.D-20) VSANT(NSANT)=DCMPLX(1.,0.)
IF(ZABS(VSANT(NSANT)).LT.1.D-20) VSANT(NSANT)=DCMPLX(1.,0.)
207 CONTINUE
MASYM=ITMP4/10
IPED=ITMP4-MASYM*10
ZPNORM=TMP3
C***
C*** ADMITTANCE STUFF - RWA 28 MAR 89 - 5 LINES
C***
IF (ZPNORM.LE.0.) GOTO 2077
YPNORM = 1/ZPNORM
GOTO 2777
2077 YPNORM = 1.D69
2777 IF (IPED.EQ.1.AND.ZPNORM.GT.0.) IPED=2
C
C** IF(IXTYP.GT.5) IXTYP=5
C
GO TO 14
C**
C** FOLLOWING FOR INCIDENT PLANE WAVE OR ELEMENTARY CURRENT SOURCE
C**
27 IF (IXTYP.EQ.0.OR.IXTYP.GE.5) NTSOL=0
IXTYP=ITMP1
NTHI=ITMP2
NPHI=ITMP3
MASYM=ITMP4/10
XPR1=TMP1
XPR2=TMP2
XPR3=TMP3
XPR4=TMP4
XPR5=TMP5
XPR6=TMP6
NSANT=0
NVQD=0
THETIS=XPR1
PHISS=XPR2
GO TO 14
C
C NETWORK PARAMETERS
C
28 IF (IFLOW.EQ.6) GO TO 29
NONET=0
NTSOL=0
IFLOW=6
IF (IGO.GT.3) IGO=3
IF (ITMP2.EQ.(-1)) GO TO 14
29 NONET=NONET+1
IF (NONET.LE.NETMX) GO TO 30
WRITE(IW,142)
STOP
30 NTYP(NONET)=2
IF (AIN.EQ.ATST(6)) NTYP(NONET)=1
ISEG1(NONET)=ISEGNO(ITMP1,ITMP2,LD,ITAG)
ISEG2(NONET)=ISEGNO(ITMP3,ITMP4,LD,ITAG)
X11R(NONET)=TMP1
X11I(NONET)=TMP2
X12R(NONET)=TMP3
X12I(NONET)=TMP4
X22R(NONET)=TMP5
X22I(NONET)=TMP6
IF (NTYP(NONET).EQ.1.OR.TMP1.GT.0.) GO TO 14
NTYP(NONET)=3
X11R(NONET)=-TMP1
C
C PLOT FLAGS
C
330 IPLP1=ITMP1
IPLP2=ITMP2
IPLP3=ITMP3
IPLP4=ITMP4
C***
GO TO 14
C
C PRINT CONTROL FOR CURRENT
C
31 IPTFLG=ITMP1
IPTAG=ITMP2
IPTAGF=ITMP3
IPTAGT=ITMP4
IF(ITMP3.EQ.0.AND.IPTFLG.NE.-1)IPTFLG=-2
IF (ITMP4.EQ.0) IPTAGT=IPTAGF
GO TO 14
C
C WRITE CONTROL FOR CHARGE
C
319 IPTFLQ=ITMP1
IPTAQ=ITMP2
IPTAQF=ITMP3
IPTAQT=ITMP4
IF(ITMP3.EQ.0.AND.IPTFLQ.NE.-1)IPTFLQ=-2
IF(ITMP4.EQ.0)IPTAQT=IPTAQF
GO TO 14
C
C NEAR FIELD CALCULATION PARAMETERS
C
208 NFEH=1
GO TO 209
32 NFEH=0
209 IF (.NOT.(IFLOW.EQ.8.AND.NFRQ.NE.1)) GO TO 33
WRITE(IW,143)
33 NEAR=ITMP1
NRX=ITMP2
NRY=ITMP3
NRZ=ITMP4
XNR=TMP1
YNR=TMP2
ZNR=TMP3
DXNR=TMP4
DYNR=TMP5
DZNR=TMP6
IFLOW=8
IF (NFRQ.NE.1) GO TO 14
GO TO (41,46,53,71,72), IGO
C
C GROUND REPRESENTATION
C
34 EPSR2=TMP1
SIG2=TMP2
CLT=TMP3
CHT=TMP4
IFLOW=9
GO TO 14
C
C STANDARD OBSERVATION ANGLE PARAMETERS
C
36 IFAR=ITMP1
NTH=ITMP2
NPH=ITMP3
IF (NTH.EQ.0) NTH=1
IF (NPH.EQ.0) NPH=1
IPD=ITMP4/10
IAVP=ITMP4-IPD*10
INOR=IPD/10
IPD=IPD-INOR*10
IAX=INOR/10
INOR=INOR-IAX*10
IF (IAX.NE.0) IAX=1
IF (IPD.NE.0) IPD=1
IF (NTH.LT.2.OR.NPH.LT.2) IAVP=0
IF (IFAR.EQ.1) IAVP=0
THETS=TMP1
PHIS=TMP2
DTH=TMP3
DPH=TMP4
RFLD=TMP5
GNOR=TMP6
IFLOW=10
GO TO (41,46,53,71,78), IGO
C
C WRITE NUMERICAL GREEN'S FUNCTION TAPE
C
322 IFLOW=12
IF(ICASX.EQ.0)GO TO 301
WRITE(IW,302)
STOP
301 IRNGF=IRESRV/2
GO TO (41,46,52,52,52),IGO
C
C EXECUTE CARD - CALC. INCLUDING RADIATED FIELDS
C
37 IF (IFLOW.EQ.10.AND.ITMP1.EQ.0) GO TO 14
IF (NFRQ.EQ.1.AND.ITMP1.EQ.0.AND.IFLOW.GT.7) GO TO 14
IF (ITMP1.NE.0) GO TO 39
IF (IFLOW.GT.7) GO TO 38
IFLOW=7
GO TO 40
38 IFLOW=11
GO TO 40
39 IFAR=0
RFLD=0.
IPD=0
IAVP=0
INOR=0
IAX=0
NTH=91
NPH=1
THETS=0.
PHIS=0.
DTH=1.0
DPH=0.
IF (ITMP1.EQ.2) PHIS=90.
IF (ITMP1.NE.3) GO TO 40
NPH=2
DPH=90.
40 GO TO (41,46,53,71,78), IGO
C
C END OF THE MAIN INPUT SECTION
C
C BEGINNING OF THE FREQUENCY DO LOOP
C
41 MHZ=1
C***
IF(N.EQ.0.OR.IFRTMW.EQ.1)GO TO 406
IFRTMW=1
DO 445 I=1,N
XTEMP(I)=X(I)
YTEMP(I)=Y(I)
ZTEMP(I)=Z(I)
SITEMP(I)=T1X(I)
BITEMP(I)=BI(I)
445 CONTINUE
406 IF(M.EQ.0.OR.IFRTMP.EQ.1)GO TO 407
IFRTMP=1
J=LD+1
DO 545 I=1,M
J=J-1
XTEMP(J)=X(J)
YTEMP(J)=Y(J)
ZTEMP(J)=Z(J)
BITEMP(J)=BI(J)
545 CONTINUE
407 CONTINUE
FMHZ1=FMHZ
C***
C CORE ALLOCATION FOR PRIMARY INTERACTON MATRIX. (A)
C**
IF(IMAT.NE.0) GOTO 42
CD WRITE(*,*) ' MAIN: CALL FBLOCK'
CALL FBLOCK(NPEQ,NEQ,IRESRV,IRNGF,IPSYM,IW)
CD WRITE(*,*) ' MAIN: RTRN FBLOCK'
C**
42 IF (MHZ.EQ.1) GO TO 44
IF (IFRQ.EQ.1) GO TO 43
C FMHZ=FMHZ+DELFRQ
FMHZ=FMHZ1+(MHZ-1)*DELFRQ
GO TO 44
43 FMHZ=FMHZ*DELFRQ
44 FR=FMHZ/CVEL
WLAM=CVEL/FMHZ
WRITE(IW,145) FMHZ,WLAM
WRITE(IW,196) RKH
IF(IEXK.EQ.1)WRITE(IW,321)
C FREQUENCY SCALING OF GEOMETRIC PARAMETERS
C*** FMHZS=FMHZ
IF(N.EQ.0)GO TO 306
DO 45 I=1,N
C***
X(I)=XTEMP(I)*FR
Y(I)=YTEMP(I)*FR
Z(I)=ZTEMP(I)*FR
T1X(I)=SITEMP(I)*FR
45 BI(I)=BITEMP(I)*FR
C***
306 IF(M.EQ.0)GO TO 307
FR2=FR*FR
J=LD+1
DO 245 I=1,M
J=J-1
C***
X(J)=XTEMP(J)*FR
Y(J)=YTEMP(J)*FR
Z(J)=ZTEMP(J)*FR
245 BI(J)=BITEMP(J)*FR2
C***
307 IGO=2
C STRUCTURE SEGMENT LOADING
46 WRITE(IW,146)
C**
IF(NLOAD.EQ.0) GOTO 470
CD WRITE(*,'(A)') 'MAIN: CALL LOAD'
CALL LOAD(ZARRAY,ZLR,ZLI,ZLC,T1X,BI,LD,ITAG,
1 LDTYP,LDTAG,LDTAGF,LDTAGT,IW)
CD WRITE(*,'(A)') 'MAIN: RTRN LOAD'
470 CONTINUE
IF(NLOAD.EQ.0.AND.NLODF.EQ.0)WRITE(IW,147)
IF(NLOAD.EQ.0.AND.NLODF.NE.0)WRITE(IW,327)
C GROUND PARAMETER
WRITE(IW,148)
IF (KSYMP.EQ.1) GO TO 49
FRATI=DCMPLX(1.,0.)
IF (IPERF.EQ.1) GO TO 48
IF(SIG.LT.0.)SIG=-SIG/(59.96*WLAM)
EPSC=DCMPLX(EPSR,-SIG*WLAM*59.96)
ZRATI=1./CDSQRT(EPSC)
U=ZRATI
U2=U*U
IF (NRADL.EQ.0) GO TO 47
SCRWL=SCRWLT/WLAM
SCRWR=SCRWRT/WLAM
T1=FJ*2367.067/FLOAT(NRADL)
T2=SCRWR*FLOAT(NRADL)
WRITE(IW,170) NRADL,SCRWLT,SCRWRT
WRITE(IW,149)
47 IF(IPERF.EQ.2)GO TO 328
WRITE(IW,391)
GO TO 329
C**
C** FOLLOWING UNFORMATTED READ MUST MATCH PRECISION OF SOMNEC FILE
C**
328 IF(NXA(1).NE.0) GOTO 401
WRITE(*,'(A)') ' OPEN UNIT 21 FOR SOMNEC INPUT FILE'
READ(21)AR1,AR2,AR3,EPSCF,DXA,DYA,XSA,YSA,NXA,NYA
CLOSE(21)
401 CONTINUE
C**
FRATI=(EPSC-1.)/(EPSC+1.)
C IF(CABS((EPSCF-EPSC)/EPSC).LT.1.E-3)GO TO 400
IF(ZABS((EPSCF-EPSC)/EPSC).LT.1.E-3)GO TO 400
WRITE(IW,393) EPSCF,EPSC
STOP
400 WRITE(IW,392)
329 WRITE(IW,150) EPSR,SIG,EPSC
GO TO 50
48 WRITE(IW,151)
GO TO 50
49 WRITE(IW,152)
50 CONTINUE
C * * *
C FILL AND FACTOR PRIMARY INTERACTION MATRIX
C
CD WRITE(*,'(A)') 'MAIN: CALL SECOND'
CALL SECOND (TIM1)
CD WRITE(*,'(A)') 'MAIN: RTRN SECOND'
IF(ICASX.NE.0)GO TO 324
C**
CD WRITE(*,*) ' MAIN: CALL CMSET'
C**
CALL CMSET(CM,SCRATC,ZARRAY,T1X,T1Y,T1Z,T2X,T2Y,T2Z,X,Y,Z,
1 BI,SALP,ICON1,ICON2,ICONX,NEQ,LD,LD2,IRESRV)
C**
CD WRITE(*,*) ' MAIN: RTRN CMSET'
C**
CALL SECOND (TIM2)
TIM=TIM2-TIM1
C
C**
CD WRITE(*,*) ' MAIN: CALL FACTRS'
C**
CALL FACTRS(CM,SCRATC,NPEQ,NEQ,IP,IX,11,12,13,14,LD2,IRESRV)
C**
CD WRITE(*,*) ' MAIN: RTRN FACTRS'
C**
GO TO 323
C
C N.G.F. - FILL B, C, AND D AND FACTOR D-C(INV(A)B)
C
C *****
324 IF(NEQ2.EQ.0)GO TO 333
C *****
C**
CD WRITE(*,*) ' MAIN: CALL CMNGF'
C**
CALL CMNGF(CM(IB11),CM(IC11),CM(ID11),ZARRAY,T1X,T1Y,T1Z,T2X,
1 T2Y,T2Z,X,Y,Z,BI,SALP,RKH,ICON1,ICON2,ICONX,NPBX,NEQ,NEQ2,
2 IEXK,LD)
C**
CD WRITE(*,*) ' MAIN: RTRN CMNGF'
C**
CALL SECOND (TIM2)
TIM=TIM2-TIM1
C**
CD WRITE(*,*) ' MAIN: CALL FACGF'
C**
CALL FACGF(CM,CM(IB11),CM(IC11),CM(ID11),CM(IX11),SCRATC,
1 IP,IX,NP,N1,MP,M1,NEQ,NEQ2,LD2,IRESRV)
C**
CD WRITE(*,*) ' MAIN: RTRN FACGF'
C**
CD WRITE(*,*) 'MAIN: CALL SECOND'
323 CALL SECOND (TIM1)
CD WRITE(*,*) 'MAIN: RTRN SECOND'
TIM2=TIM1-TIM2
IF(TIM .LT.0.) TIM =TIM + 86400.
IF(TIM2.LT.0.) TIM2=TIM2 + 86400.
WRITE(IW,153) TIM/60.,TIM2/60.
CD WRITE(* ,153) TIM/60.,TIM2/60.
333 IGO=3
NTSOL=0
IF(IFLOW.NE.12)GO TO 53
52 CONTINUE
C**
C** WRITE N.G.F. FILE TO 'TAPE.[IGFL]'
C**
CD WRITE(*,*) ' MAIN: CALL GFOUT'
C**
CALL GFOUT(CM,ZARRAY,X,Y,Z,T1X,BI,T1Y,T1Z,SALP,
1 ICON1,ICON2,ITAG,IP,IW,IGFL,LD,LD2,IRESRV)
C**
CD WRITE(*,*) ' MAIN: RTRN GFOUT'
C**
GO TO 14
C
C EXCITATION SET UP (RIGHT HAND SIDE, -E INC.)
C
53 NTHIC=1
NPHIC=1
INC=1
NPRINT=0
54 IF (IXTYP.EQ.0.OR.IXTYP.GE.5) GO TO 56
IF (IPTFLG.LE.0.OR.IXTYP.EQ.4) WRITE(IW,154)
TMP5=TA*XPR5
TMP4=TA*XPR4
IF (IXTYP.NE.4) GO TO 55
TMP1=XPR1/WLAM
TMP2=XPR2/WLAM
TMP3=XPR3/WLAM
TMP6=XPR6/(WLAM*WLAM)
WRITE(IW,156) XPR1,XPR2,XPR3,XPR4,XPR5,XPR6
GO TO 56
55 TMP1=TA*XPR1
TMP2=TA*XPR2
TMP3=TA*XPR3
TMP6=XPR6
IF (IPTFLG.LE.0) WRITE(IW,155) XPR1,XPR2,XPR3,HPOL(IXTYP),XPR6
56 CONTINUE
C**
CD WRITE(*,*) ' MAIN: CALL ETMNS'
C**
CALL ETMNS(CUR,ZARRAY,X,Y,Z,BI,SALP,T1X,T1Y,T1Z,T2X,T2Y,
1 T2Z,TMP1,TMP2,TMP3,TMP4,TMP5,TMP6,ICON1,ICON2,LD,LD2,LD3,
2 IXTYP)
C**
CD WRITE(*,*) ' MAIN: RTRN ETMNS'
C**
C
C MATRIX SOLVING (NETWK CALLS SOLVES)
C
IF((NONET.EQ.0.).OR.(INC.GT.1).OR.(NAMPRT.NE.0)) GO TO 60
WRITE(IW,158)
C WRITE(* ,158)
ITMP3=0
ITMP1=NTYP(1)
DO 59 I=1,2
IF (ITMP1.EQ.3) ITMP1=2
IF (ITMP1.EQ.2) WRITE(IW,159)
IF (ITMP1.EQ.1) WRITE(IW,160)
DO 58 J=1,NONET
ITMP2=NTYP(J)
IF ((ITMP2/ITMP1).EQ.1) GO TO 57
ITMP3=ITMP2
GO TO 58
57 ITMP4=ISEG1(J)
ITMP5=ISEG2(J)
IF (ITMP2.GE.2.AND.X11I(J).LE.0.) X11I(J)=WLAM*SQRT((X(ITMP5)
1 -X(ITMP4))**2+(Y(ITMP5)-Y(ITMP4))**2+(Z(ITMP5)-Z(ITMP4))**2)
WRITE(IW,157) ITAG(ITMP4),ITMP4,ITAG(ITMP5),ITMP5,X11R(J),
1 X11I(J),X12R(J),X12I(J),X22R(J),X22I(J),PNET(ITMP2)
58 CONTINUE
IF (ITMP3.EQ.0) GO TO 60
ITMP1=ITMP3
59 CONTINUE
60 CONTINUE
IF (INC.GT.1.AND.IPTFLG.GT.0) NPRINT=1
C**
CD WRITE(*,*) ' MAIN: CALL NETWK'
C**
CALL NETWK(CM,CM(IB11),CM(IC11),CM(ID11),CUR,RHS,SCRATC,
1 AIR,AII,BIR,BII,CIR,CII,T1X,T1Y,T1Z,T2X,T2Y,T2Z,BI,
2 ICON1,ICON2,ITAG,IP,IW,LD,LD2,LD3,IRESRV)
C**
CD WRITE(*,*) ' MAIN: RTRN NETWK'
C**
325 CONTINUE
C
NTSOL=1
IF (IPED.EQ.0) GO TO 61
ITMP1=MHZ+4*(MHZ-1)
IF (ITMP1.GT.(NORMF-3)) GO TO 61
FNORM(ITMP1)=DREAL(ZPED)
FNORM(ITMP1+1)=DIMAG(ZPED)
FNORM(ITMP1+2)=ZABS(ZPED)
FNORM(ITMP1+3)=CANG(1.D0*ZPED)
IF (IPED.EQ.2) GO TO 61
IF (FNORM(ITMP1+2).GT.ZPNORM) ZPNORM=FNORM(ITMP1+2)
61 CONTINUE
C
C PRINTING STRUCTURE CURRENTS
C
IF(N.EQ.0)GO TO 308
IF (IPTFLG.EQ.(-1)) GO TO 63
C***
C*** PT STUFF - RCV CURRENT OUTPUT RWA 29 MAR 89 CHANGE 1 LINE
C***
IF (IPTFLG.GT.0) GO TO 620
WRITE(IW,161)
WRITE(IW,162)
GO TO 63
C***
C*** PT STUFF - RCV CURRENT OUTPUT RWA 29 MAR 89 ADD 3 LINES
C***
620 IF (IPTFLG.NE.9.OR.INC.GT.1) GO TO 62
WRITE(IW,1630) XPR3,HPOL(IXTYP),XPR6
GO TO 63
62 IF (IPTFLG.EQ.3.OR.INC.GT.1) GO TO 63
WRITE(IW,163) XPR3,HPOL(IXTYP),XPR6
63 PLOSS=0.
ITMP1=0
JUMP=IPTFLG+1
DO 69 I=1,N
CURI=CUR(I)*WLAM
CMAG=ZABS(CURI)
PH=CANG(CURI)
IF (NLOAD.EQ.0.AND.NLODF.EQ.0) GO TO 64
IF (ABS(DREAL(ZARRAY(I))).LT.1.D-20) GO TO 64
PLOSS=PLOSS+.5*CMAG*CMAG*DREAL(ZARRAY(I))*T1X(I)
64 IF (JUMP) 68,69,65
65 IF (IPTAG.EQ.0) GO TO 66
IF (ITAG(I).NE.IPTAG) GO TO 69
66 ITMP1=ITMP1+1
IF (ITMP1.LT.IPTAGF.OR.ITMP1.GT.IPTAGT) GO TO 69
IF (IPTFLG.EQ.0) GO TO 68
C***
C*** PT STUFF - RCV CURRENT OUTPUT RWA 29 MAR 89 CHANGE 1 LINE
C***
IF (IPTFLG.LT.2.OR.IPTFLG.NE.9.OR.INC.GT.NORMF) GO TO 67
FNORM(INC)=CMAG
ISAVE=I
C***
C*** PT STUFF RCV CURRENT OUTPUT RWA 29 MAR 89 CHNG 1, ADD 7 LNS
C***
67 IF(IPTFLG.NE.3.AND.IPTFLG.LT.9) WRITE(IW,164) XPR1,XPR2,CMAG,PH,I
IF (IPTFLG.EQ.8) GO TO 677
IF (IPTFLG.EQ.9) GO TO 688
GO TO 69
677 WRITE(8,*) XPR1,XPR2,CMAG,PH,I
GO TO 69
688 WRITE(IW,1640) XPR1,XPR2,CURI,I
WRITE(8,*) XPR1,XPR2,CURI,I
68 WRITE(IW,165) I,ITAG(I),X(I),Y(I),Z(I),T1X(I),CURI,CMAG,PH
C***
C*** PL STUFF OUTPUT CURRENTS FOR NEC/BSC (GTD CODE) ADD 2 LINES
C***
IF(IPLP1.NE.1) GO TO 69
IF(IPLP2.EQ.1) WRITE(8,*) CURI
C***
C*** PL STUFF OUTPUT CURRENTS FOR CURRPLOT ADD 1 LINE
C***
IF(IPLP2.EQ.2) WRITE(8,*) CMAG,PH
69 CONTINUE
IF(IPTFLQ.EQ.(-1))GO TO 308
WRITE(IW,315)
ITMP1=0
FR=1.E-6/FMHZ
DO 316 I=1,N
IF(IPTFLQ.EQ.(-2))GO TO 318
IF(IPTAQ.EQ.0)GO TO 317
IF(ITAG(I).NE.IPTAQ)GO TO 316
317 ITMP1=ITMP1+1
IF(ITMP1.LT.IPTAQF.OR.ITMP1.GT.IPTAQT)GO TO 316
318 CURI=FR*DCMPLX(-BII(I),BIR(I))
CMAG=ZABS(CURI)
PH=CANG(CURI)
WRITE(IW,165) I,ITAG(I),X(I),Y(I),Z(I),T1X(I),CURI,CMAG,PH
316 CONTINUE
308 IF(M.EQ.0)GO TO 310
WRITE(IW,197)
J=N-2
ITMP1=LD+1
DO 309 I=1,M
J=J+3
ITMP1=ITMP1-1
EX=CUR(J)
EY=CUR(J+1)
EZ=CUR(J+2)
ETH=EX*T1X(ITMP1)+EY*T1Y(ITMP1)+EZ*T1Z(ITMP1)
EPH=EX*T2X(ITMP1)+EY*T2Y(ITMP1)+EZ*T2Z(ITMP1)
ETHM=ZABS(ETH)
ETHA=CANG(ETH)
EPHM=ZABS(EPH)
EPHA=CANG(EPH)
C***
C** PL STUFF OUTPUT CURRENTS RWA 29 MAR 89 CHANG 2, ADD 5
WRITE(IW,198) I,X(ITMP1),Y(ITMP1),Z(ITMP1),ETHM,ETHA,EPHM,EPHA,
1EX,EY,EZ
IF(IPLP1.NE.1) GO TO 309
IF(IPLP3.EQ.1) WRITE(8,*) EX
IF(IPLP3.EQ.2) WRITE(8,*) EY
IF(IPLP3.EQ.3) WRITE(8,*) EZ
IF(IPLP3.EQ.4) WRITE(8,*) EX,EY,EZ
309 CONTINUE
310 IF (IXTYP.NE.0.AND.IXTYP.LT.5) GO TO 70
TMP1=PIN-PNLS-PLOSS
TMP2=100.*TMP1/PIN
WRITE(IW,166) PIN,TMP1,PLOSS,PNLS,TMP2
70 CONTINUE
C
IGO=4
IF(NCOUP.LE.0) GOTO 710
C**
CD WRITE(*,'(A)') 'MAIN: CALL COUPLE'
CALL COUPLE(IW,CUR,WLAM,LD,LD3,ITAG)
CD WRITE(*,'(A)') 'MAIN: RTRN COUPLE'
C**
710 CONTINUE
IF (IFLOW.NE.7) GO TO 71
IF (IXTYP.GT.0.AND.IXTYP.LT.4) GO TO 113
IF (NFRQ.NE.1) GO TO 120
WRITE(IW,135)
GO TO 14
71 IGO=5
C
C NEAR FIELD CALCULATION
C
72 IF (NEAR.EQ.(-1)) GO TO 78
CD WRITE(*,'(A)') 'MAIN: CALL NFPAT'
CALL NFPAT(X,Y,Z,T1X,BI,SALP,T1X,T1Y,T1Z,
1 T2X,T2Y,T2Z,ICON1,ICON2,AIR,AII,BIR,BII,CIR,CII,CUR,IW,LD,LD3)
CD WRITE(*,'(A)') 'MAIN: RTRN NFPAT'
IF (MHZ.EQ.NFRQ) NEAR=-1
IF (NFRQ.NE.1) GO TO 78
WRITE(IW,135)
GO TO 14
C
C STANDARD FAR FIELD CALCULATION
C
78 IF(IFAR.EQ.-1)GO TO 113
PINR=PIN
PNLR=PNLS
CD WRITE(*,'(A)') 'MAIN: CALL RDPAT'
CALL RDPAT(CUR,GAIN,AIR,AII,BIR,BII,CIR,CII,T1X,T1Y,T1Z,
1 BI,SALP,X,Y,Z,LD,LD3,LD4,IW)
CD WRITE(*,'(A)') 'MAIN: RTRN RDPAT'
113 IF (IXTYP.EQ.0.OR.IXTYP.GE.4) GO TO 119
NTHIC=NTHIC+1
INC=INC+1
XPR1=XPR1+XPR4
IF (NTHIC.LE.NTHI) GO TO 54
NTHIC=1
XPR1=THETIS
XPR2=XPR2+XPR5
NPHIC=NPHIC+1
IF (NPHIC.LE.NPHI) GO TO 54
NPHIC=1
XPR2=PHISS
C***
C*** PT STUFF RCV CURRENT OUTPUT RWA 29 MAR 89 CHANGE 1 LINE
C***
IF (IPTFLG.LT.2.OR.IPTFLG.GT.7) GO TO 119
C NORMALIZED RECEIVING PATTERN PRINTED
ITMP1=NTHI*NPHI
IF (ITMP1.LE.NORMF) GO TO 114
ITMP1=NORMF
WRITE(IW,181)
114 TMP1=FNORM(1)
DO 115 J=2,ITMP1
IF (FNORM(J).GT.TMP1) TMP1=FNORM(J)
115 CONTINUE
WRITE(IW,182) TMP1,XPR3,HPOL(IXTYP),XPR6,ISAVE
DO 118 J=1,NPHI
ITMP2=NTHI*(J-1)
DO 116 I=1,NTHI
ITMP3=I+ITMP2
IF (ITMP3.GT.ITMP1) GO TO 117
TMP2=FNORM(ITMP3)/TMP1
TMP3=DB20(1.D0*TMP2)
WRITE(IW,183) XPR1,XPR2,TMP3,TMP2
XPR1=XPR1+XPR4
116 CONTINUE
117 XPR1=THETIS
XPR2=XPR2+XPR5
118 CONTINUE
XPR2=PHISS
119 IF (MHZ.EQ.NFRQ) IFAR=-1
IF (NFRQ.NE.1) GO TO 120
WRITE(IW,135)
GO TO 14
120 MHZ=MHZ+1
IF (MHZ.LE.NFRQ) GO TO 42
IF (IPED.EQ.0) GO TO 123
IF(NVQD.LT.1)GO TO 199
WRITE(IW,184) IVQD(NVQD),ZPNORM
GO TO 204
199 WRITE(IW,184) ISANT(NSANT),ZPNORM
204 ITMP1=NFRQ
IF (ITMP1.LE.(NORMF/4)) GO TO 121
ITMP1=NORMF/4
WRITE(IW,185)
121 IF (IFRQ.EQ.0) TMP1=FMHZ-(NFRQ-1)*DELFRQ
IF (IFRQ.EQ.1) TMP1=FMHZ/(DELFRQ**(NFRQ-1))
DO 122 I=1,ITMP1
ITMP2=I+4*(I-1)
TMP2=FNORM(ITMP2)/ZPNORM
TMP3=FNORM(ITMP2+1)/ZPNORM
TMP4=FNORM(ITMP2+2)/ZPNORM
TMP5=FNORM(ITMP2+3)
C***
C*** VSWR STUFF RWA 29 MAR 89 ADD 7 LINES, CHANGE 2
C***
SWRA = SQRT(((TMP2+1)**2)+TMP3**2)
SWRB = SQRT(((TMP2-1)**2)+TMP3**2)
SWR = (SWRA+SWRB)/(SWRA-SWRB)
WRITE(IW,186) TMP1,FNORM(ITMP2),FNORM(ITMP2+1),FNORM(ITMP2+2),
1FNORM(ITMP2+3),TMP2,TMP3,TMP4,TMP5,SWR
IF (IPLP1.NE.4) GO TO 1122
WRITE(8,1866) TMP1,FNORM(ITMP2),FNORM(ITMP2+1),
1TMP2,TMP3,SWR
1122 CONTINUE
IF (IFRQ.EQ.0) TMP1=TMP1+DELFRQ
IF (IFRQ.EQ.1) TMP1=TMP1*DELFRQ
122 CONTINUE
C***
C*** ADMITTANCE STUFF RWA 29 MAR 89 32 LINES
C***
IF (NVQD.LT.1) GO TO 1999
WRITE (IW,1844) IVQD(NVQD),YPNORM
GO TO 2044
1999 WRITE (IW,1844) ISANT(NSANT), YPNORM
2044 ITMP1 = NFRQ
IF (ITMP1.LE.(NORMF/4)) GO TO 1211
ITMP1 = NORMF/4
WRITE (IW,185)
1211 IF (IFRQ.EQ.0) TMP1=FMHZ-(NFRQ-1)*DELFRQ
IF (IFRQ.EQ.1) TMP1=FMHZ/(DELFRQ**(NFRQ-1))
DO 1222 I=1,ITMP1
ITMP2 =I+4*(I-1)
YTMP2 = FNORM(ITMP2)/(FNORM(ITMP2)**2+FNORM(ITMP2+1)**2)
YTMP3 = -FNORM(ITMP2+1)/(FNORM(ITMP2)**2+FNORM(ITMP2+1)**2)
YTMP4 = 1./FNORM(ITMP2+2)
YTMP5 = -FNORM(ITMP2+3)
YNTMP2 = YTMP2/YPNORM
YNTMP3 = YTMP3/YPNORM
YNTMP4 = YTMP4/YPNORM
YNTMP5 = YTMP5
SWRA = SQRT((((YNTMP2)+1)**2)+(YNTMP3)**2)
SWRB = SQRT((((YNTMP2)-1)**2)+(YNTMP3)**2)
SWR = (SWRA+SWRB)/(SWRA-SWRB)
WRITE (IW,186) TMP1, YTMP2, YTMP3, YTMP4, YTMP5,
1YNTMP2, YNTMP3, YNTMP4, YNTMP5, SWR
IF (IPLP1.NE.5) GO TO 1123
WRITE (8,1866) TMP1, YTMP2, YTMP3,
1YNTMP2, YNTMP3, SWR
1123 CONTINUE
IF (IFRQ.EQ.0) TMP1=TMP1+DELFRQ
IF (IFRQ.EQ.1) TMP1=TMP1*DELFRQ
1222 CONTINUE
WRITE(IW,135)
123 CONTINUE
NFRQ=1
MHZ=1
GO TO 14
125 FORMAT (A2,19A4)
126 FORMAT (1H1)
127 FORMAT (///,33X,36H************************************,//,36X,
1 31HNUMERICAL ELECTROMAGNETICS CODE,//,33X,
2 36H************************************)
128 FORMAT (////,37X,24H- - - - COMMENTS - - - -,//)
129 FORMAT (25X,20A4)
130 FORMAT (///,10X,34HINCORRECT LABEL FOR A COMMENT CARD)
135 FORMAT (/////)
136 FORMAT (A2,I3,3I5,6E10.3)
137 FORMAT (1X, 19H***** DATA CARD NO.,I3,3X,A2,1X,I3,3(1X,I5),
1 6(1X,1P,E12.5))
138 FORMAT (///,10X,45HFAULTY DATA CARD LABEL AFTER GEOMETRY SECTION)
139 FORMAT (///,10X,48HNUMBER OF LOADING CARDS EXCEEDS STORAGE ALLOTTE
1D)
140 FORMAT (///,10X,31HDATA FAULT ON LOADING CARD NO.=,I5,5X,11HITAG S
1TEP1=,I5,29H IS GREATER THAN ITAG STEP2=,I5)
141 FORMAT (///,10X,51HNUMBER OF EXCITATION CARDS EXCEEDS STORAGE ALLO
1TTED)
142 FORMAT (///,10X,48HNUMBER OF NETWORK CARDS EXCEEDS STORAGE ALLOTTE
1D)
143 FORMAT(///,10X,79HWHEN MULTIPLE FREQUENCIES ARE REQUESTED, ONLY ON
1E NEAR FIELD CARD CAN BE USED -,/,10X,22HLAST CARD READ IS USED)
145 FORMAT (////,33X,33H- - - - - - FREQUENCY - - - - - -,//,36X,10HFR
1EQUENCY=,1P,E11.4,4H MHZ,/,36X,11HWAVELENGTH=,E11.4,7H METERS)
146 FORMAT (///,30X,40H - - - STRUCTURE IMPEDANCE LOADING - - -)
147 FORMAT (/ ,35X,28HTHIS STRUCTURE IS NOT LOADED)
148 FORMAT (///,34X,31H- - - ANTENNA ENVIRONMENT - - -,/)
149 FORMAT (40X,21HMEDIUM UNDER SCREEN -)
150 FORMAT (40X,27HRELATIVE DIELECTRIC CONST.=,F7.3,/,40X,13HCONDUCTIV
1ITY=,1P,E10.3,11H MHOS/METER,/,40X,28HCOMPLEX DIELECTRIC CONSTANT=
1,2E12.5)
151 FORMAT ( 42X,14HPERFECT GROUND)
152 FORMAT ( 44X,10HFREE SPACE)
153 FORMAT (///,32X,25H- - - MATRIX TIMING - - -,//,24X,5HFILL=,F9.3,
115H MIN., FACTOR=,F9.3,5H MIN.)
154 FORMAT (///,40X,22H- - - EXCITATION - - -)
155 FORMAT (/,4X,10HPLANE WAVE,4X,6HTHETA=,F7.2,11H DEG, PHI=,F7.2,
1 11H DEG, ETA=,F7.2,13H DEG, TYPE -,A6,15H= AXIAL RATIO=,F6.3)
156 FORMAT (/,31X,17HPOSITION (METERS),14X,18HORIENTATION (DEG)=/,28X,
11HX,12X,1HY,12X,1HZ,10X,5HALPHA,5X,4HBETA,4X,13HDIPOLE MOMENT,//
2 ,4X,14HCURRENT SOURCE,1X,3(3X,F10.5),1X,2(3X,F7.2),4X,F8.3)
157 FORMAT (4X,4(I5,1X),1P,6(3X,E11.4),3X,A8)
158 FORMAT (///,44X,24H- - - NETWORK DATA - - -)
159 FORMAT (/,6X,18H- FROM - - TO -,11X,17HTRANSMISSION LINE,15X,36
1H- - SHUNT ADMITTANCES (MHOS) - -,14X,4HLINE,/,6X,21HTAG SEG.
2 TAG SEG.,6X,9HIMPEDANCE,6X,6HLENGTH,12X,11H- END ONE -,17X,11H
3- END TWO -,12X,4HTYPE,/ ,6X,21HNO. NO. NO. NO.,9X,4HOHMS
4,8X,6HMETERS,9X, 4HREAL,10X,5HIMAG.,9X,4HREAL,10X,5HIMAG.)
160 FORMAT (/,6X,8H- FROM -,4X,6H- TO -,26X,45H- - ADMITTANCE MATRIX
1 ELEMENTS (MHOS) - -,/ ,6X,21HTAG SEG. TAG SEG.,13X,9H(ON
2E,ONE),19X, 9H(ONE,TWO),19X,9H(TWO,TWO),/ ,6X,21HNO. NO. NO
3. NO.,8X,4HREAL,10X,5HIMAG.,9X,4HREAL,10X,5HIMAG.,9X,4HREAL,
4 10X,5HIMAG.)
161 FORMAT (///,29X,33H- - - CURRENTS AND LOCATION - - -,//,33X,24HDIS
1TANCES IN WAVELENGTHS)
162 FORMAT ( //,2X,4HSEG.,2X,3HTAG,4X,21HCOORD. OF SEG. CENTER,5X,
1 4HSEG.,12X,26H- - - CURRENT (AMPS) - - -,/,2X,3HNO.,3X,3HNO.,
2 5X,1HX,8X,1HY,8X,1HZ,6X,6HLENGTH,5X,4HREAL,8X,5HIMAG.,7X,4HMAG.,
3 8X,5HPHASE)
163 FORMAT (///,33X,40H- - - RECEIVING PATTERN PARAMETERS - - -,/ ,43
1X,4HETA=,F7.2,8H DEGREES,/,43X,6HTYPE -,A6,/,43X,12HAXIAL RATIO=,
2 F6.3,// ,11X,5HTHETA,6X,3HPHI,10X,13H- CURRENT -,9X,3HSEG,/
3,11X,5H(DEG),5X,5H(DEG),7X,9HMAGNITUDE,4X,5HPHASE,6X,3HNO.,/)
C***
C*** PT STUFF RCV CURRENT OUTPUT RWA 29 MAR 89 ADD 4 LINES
C***
1630 FORMAT (///,33X,40H- - - RECEIVING PATTERN PARAMETERS - - -,/ ,43
1X,4HETA=,F7.2,8H DEGREES,/,43X,6HTYPE -,A6,/,43X,12HAXIAL RATIO=,
2 F6.3,// ,11X,5HTHETA,6X,3HPHI,10X,13H- CURRENT -,9X,3HSEG,/
3,11X,5H(DEG),5X,5H(DEG),7X,9H REAL ,4X,5HIMAG.,6X,3HNO.,/)
164 FORMAT (10X,2(F7.2,3X),1X,1P,E11.4,3X,0P,F7.2,4X,I5)
C***
C*** PT STUFF RCV CURRENT OUTPUT RWA 29 MAR 89 ADD 1 LINE
C***
1640 FORMAT (10X,2(F7.2,3X),1X,1P,E11.4,1X,E11.4,2X,I5)
165 FORMAT (1X,2I5,3F9.4,F9.5,1X,1P,3E12.4,0P,F9.3)
166 FORMAT (///,40X,24H- - - POWER BUDGET - - -,// ,43X,15HINPUT PO
1WER =,1P,E11.4,6H WATTS,/ ,43X,15HRADIATED POWER=,E11.4,6H WATTS
2,/,43X,15HSTRUCTURE LOSS=,E11.4,6H WATTS,/ ,43X,15HNETWORK LOSS =
3, E11.4,6H WATTS,/,43X,15HEFFICIENCY =,0P,F7.2,8H PERCENT)
170 FORMAT (40X,25HRADIAL WIRE GROUND SCREEN,/,40X, I5,6H WIRES,/,40
1X,12HWIRE LENGTH=,F8.2,7H METERS,/,40X,12HWIRE RADIUS=,1P,E10.3,
27H METERS)
181 FORMAT (///,4X,51HRECEIVING PATTERN STORAGE TOO SMALL,ARRAY TRUNCA
1TED)
182 FORMAT (///,32X,40H- - - NORMALIZED RECEIVING PATTERN - - -,/,41X,
121HNORMALIZATION FACTOR=,1P,E11.4,/,41X,4HETA=,0P,F7.2,8H DEGREES,
2/,41X,6HTYPE -,A6,/,41X,12HAXIAL RATIO=,F6.3,/,41X,12HSEGMENT NO.=
3,I5,//,21X,5HTHETA,6X,3HPHI,9X,13H- PATTERN -,/,21X,5H(DEG),5X,
45H(DEG),8X,2HDB,8X,9HMAGNITUDE,/)
183 FORMAT (20X,2(F7.2,3X),1X,F7.2,4X,1P,E11.4)
C***
C*** VSWR STUFF RWA 29 MAR 89 8 LINE CHANGES
C***
184 FORMAT (///,36X,32H- - - INPUT IMPEDANCE DATA - - -,/ ,45X,18HSO
1URCE SEGMENT NO.,I4,/ ,45X,21HNORMALIZATION FACTOR=,1P,E12.5,//
2,7X,5HFREQ.,13X,34H- - UNNORMALIZED IMPEDANCE - -,21X, 32H-
3 - NORMALIZED IMPEDANCE - -,12X,'VSWR'/,
|19X,10HRESISTANCE,4X,9HREACTANCE,
46X,9HMAGNITUDE,4X,5HPHASE,7X,10HRESISTANCE,4X,9HREACTANCE,6X,
5 9HMAGNITUDE,4X,5HPHASE,/ ,8X,3HMHZ,11X,4HOHMS,10X,4HOHMS,11X,
6 4HOHMS,5X,7HDEGREES,47X,7HDEGREES,/)
C***
C*** ADMITTANCE STUFF RWA 29 MAR 89 8 LINE CHANGES
C***
1844 FORMAT (///,35X,'- - - INPUT ADMITTANCE DATA - - -',/ ,45X,'SOUR
1CE SEGMENT NO.',I4,/ ,45X,21HNORMALIZATION FACTOR=,1P,E12.5,//
2,7X,5HFREQ.,12X,'- - UNNORMALIZED ADMITTANCE - -',20X, '-
3 - NORMALIZED ADMITTANCE - -',10X,'VSWR'/,
|19X,'CONDUCTANCE',3X,'SUSCEPTANCE',
45X,9HMAGNITUDE,4X,5HPHASE,6X,'CONDUCTANCE',3X,'SUSCEPTANCE',3X,
5 9HMAGNITUDE,4X,5HPHASE,/ ,8X,3HMHZ,11X,4HMHOS,10X,4HMHOS,11X,
6 4HMHOS,5X,7HDEGREES,47X,7HDEGREES,/)
185 FORMAT (///,4X,62HSTORAGE FOR IMPEDANCE NORMALIZATION TOO SMALL, A
1RRAY TRUNCATED)
C***
C*** VSWR STUFF RWA 29 MAR 89 2 LINE CHANGES 1 LINE ADD
C***
186 FORMAT (3X,F9.3,2X,1P,2(2X,E12.5),3X,E12.5,2X,0P,F7.2,2X,1P,2(2X,
1 E12.5),3X,E12.5,2X,0P,F7.2,3X,F5.2)
1866 FORMAT (1X,6E11.3)
196 FORMAT( ////,20X,55HAPPROXIMATE INTEGRATION EMPLOYED FOR SEGMENT
1S MORE THAN,F8.3,18H WAVELENGTHS APART)
197 FORMAT( ////,41X,38H- - - - SURFACE PATCH CURRENTS - - - -,//,
1 50X,23HDISTANCE IN WAVELENGTHS,/,50X,21HCURRENT IN AMPS/METER,
1 //,28X,26H- - SURFACE COMPONENTS - -,19X,34H- - - RECTANGULAR COM
1PONENTS - - -,/,6X,12HPATCH CENTER,6X,16HTANGENT VECTOR 1,3X,
116HTANGENT VECTOR 2,11X,1HX,19X,1HY,19X,1HZ,/,5X,1HX,6X,1HY,6X,
11HZ,5X,4HMAG.,7X,5HPHASE,3X,4HMAG.,7X,5HPHASE,3(4X,4HREAL,6X,
1 6HIMAG. ))
198 FORMAT(1X,I4,/,1X,3F7.3,2(1P,E11.4,0P,F8.2),1P,6E10.2)
201 FORMAT(/,11H RUN TIME =,F10.3)
315 FORMAT(///,34X,28H- - - CHARGE DENSITIES - - -,//,36X,
1 24HDISTANCES IN WAVELENGTHS,///,2X,4HSEG.,2X,3HTAG,4X,
2 21HCOORD. OF SEG. CENTER,5X,4HSEG.,10X,
3 31HCHARGE DENSITY (COULOMBS/METER),/,2X,3HNO.,3X,3HNO.,5X,1HX,8X,
4 1HY,8X,1HZ,6X,6HLENGTH,5X,4HREAL,8X,5HIMAG.,7X,4HMAG.,8X,5HPHASE)
321 FORMAT( /,20X,42HTHE EXTENDED THIN WIRE KERNEL WILL BE USED)
303 FORMAT(/,9H ERROR - ,A2,32H CARD IS NOT ALLOWED WITH N.G.F.)
327 FORMAT(/,35X,31H LOADING ONLY IN N.G.F. SECTION)
302 FORMAT(48H ERROR - N.G.F. IN USE. CANNOT WRITE NEW N.G.F.)
313 FORMAT(/,62H NUMBER OF SEGMENTS IN COUPLING CALCULATION (CP) EXCEE
1DS LIMIT)
390 FORMAT(78H RADIAL WIRE G. S. APPROXIMATION MAY NOT BE USED WITH SO
1MMERFELD GROUND OPTION)
391 FORMAT(40X,52HFINITE GROUND. REFLECTION COEFFICIENT APPROXIMATION
1)
392 FORMAT(40X,35HFINITE GROUND. SOMMERFELD SOLUTION)
393 FORMAT(/,29H ERROR IN GROUND PARAMETERS -,/,41H COMPLEX DIELECTRIC
1 CONSTANT FROM FILE IS,1P,2E12.5,/,32X,9HREQUESTED,2E12.5)
END